The present invention relates to data copying. More particularly, the present invention relates to mapping related to space efficient cascading point-in-time copying.
Point-in-time copying may be applied when a copy of a large quantity of source data is required without disrupting normal operation of a system. With point-in-time copying, the copy of the data becomes immediately available for use. The data in the copy represents the source data at a given instant in time. For example, the data in the copy may, at a later time, be used for creation of a backup copy on another storage medium, or for offline data mining, with minimal disruption of normal system operation.
For example, making an actual or physical copy of source data, wherein data that is identical to source data originally saved at one address is written to another address, may require a significant amount of time. For example, source data may change during the course of making the physical copy. For example, during the course of physically copying data that represents a set of bank accounts, the contents of one of the accounts may change. Thus, the last data copied during physical copying may not be consistent with the first data copied. On the other hand, halting system activities operation during copying may unacceptably disrupt system operation.
Application of point-in-time copying to copy the data, on the other hand, may enable creation of a self-consistent copy of the source data at particular instant in time. The point-in-time copy may be immediately available for use.
Point-in-time copying may include defining a target volume to which the source data may be copied. For example, a data storage controller may initially create a logical copy of the data. For example, a logical copy of data may include a reference to an address where the data is actually stored. For example, a logical copy may include a list or table that links each source data address in the source volume to a target address in the target volume. The table may also indicate whether data at a particular source data address has been physically copied to the target address. Thus, when attempting to read the copied target data from the target volume, a system or program may consult the table. Consultation of the table may indicate whether the data is to be read from its original source address on source volume, or from the target address on the target volume. Typically, creation of a logical copy is faster than creation of a physical copy. Therefore, creation of a logical copy of the source volume at an instant in time may not unacceptably disrupt operation of an associated system.
Typically, implementation of point-in-time copying may include creation of a physical copy on demand. For example, the storage controller may physically copy source data to the target volume when data at the source data address is to be modified, deleted, or overwritten. Such creation of a physical copy on demand typically does not unacceptably disrupt normal system operation.
Implementation of point-in-time copying may enable configuration of more than one target volume that exist concurrently. For example, the implementation may be configured to provide an approximation to continuous data protection (CDP). CDP typically includes creating a copy of data whenever the source data is modified. Thus, the implementation may include assigning a separate target volume to each created copy.
An implementation of multiple-target point-in-time copying may maintain multiple target volumes in the form of a cascaded copying to a cascaded array of target volumes. For example, cascaded copying may enable making only a single physical copy of data that may be shared by two or more logical copies on separate target volumes. Typically, a linked list of pointers may refer a logical copy on one target volume to a physical copy on another target volume. For example, reading a logical copy from a one target volume may redirect the read operation to another target volume that was created at a later time. Such redirection may thus continue along the cascaded array until encountering either a physical copy on a target volume, or the original data on the source volume.
When one of the target volumes is removed or deleted, physical copies of data on the target volume to be removed may be physically copied to a different target volume.
An implementation of multiple target copying may include space efficient point-in-time copying. With space efficient point-in-time copying, all physically copied data resides on a single volume, referred to as a repository.